package com.software.sqlite.mapper;

import com.software.sqlite.common.BaseMapper;
import com.software.sqlite.entity.TbMovieUser;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

public interface TbMovieUserMapper extends BaseMapper<TbMovieUser> {


    /**
     * 更新用户信息
     * @param model
     */
    void updateMovieUser(@Param("model") TbMovieUser model);
    /**
     * 删除所有用户
     */
    void deleteAll();

    /**
     * 统计钱包
     * @return
     */
    List<TbMovieUser> statisticsWallet();

    /**
     * 根据个人统计钱包
     * @param userToken
     * @return
     */
    TbMovieUser statisticsWalletByUserId(@Param("userToken")String userToken);

    /**
     * 个人信息
     * @param userToken
     * @return
     */
    TbMovieUser myInfo(@Param("userToken")String userToken);

    /**
     * 更新个人钱包数据
     * @param userToken
     */
    void updateWalletByUserId(@Param("userToken")String userToken, BigDecimal walletAmount);

    /**
     * 用户登录
     * @param userName
     * @param password
     * @return
     */
    TbMovieUser selectByLogin(@Param("userName")String userName,@Param("password")String password);
    /**
     * 根据movieUserId查询用户
     * @param userToken
     * @return
     */
    TbMovieUser selectByMovieUserId(@Param("userToken")String userToken);

    /**
     * 根据userName查询用户
     * @param userName
     * @return
     */
    TbMovieUser selectByUserName(@Param("userName")String userName);

    /**
     * 根据mobile查询用户
     * @param mobile
     * @return
     */
    TbMovieUser selectByMobile(@Param("mobile")String mobile);

    /**
     * 根据userToken查询用户
     * @param userToken
     * @return
     */
    TbMovieUser selectByUserToken(@Param("userToken")String userToken);


    /**
     * 根据openid查询用户
     * @param idCard
     * @return
     */
    TbMovieUser selectByIdCard(@Param("idCard")String idCard);


    /**
     * 根据openid查询用户
     * @param openid
     * @return
     */
    TbMovieUser selectByOpenId(@Param("openid")String openid);

    /**
     * 修改密码
     * @param userToken
     * @param password
     */
    void updatePassword(@Param("userToken")String userToken,@Param("password")String password);


}
